我想知道atomically:
该writeToFile:atomically:
方法中的参数代表什么(-[NSArray writeToFile:atomically:]
例如).这是常见YES
的atomically:
,但我不知道这意味着什么.
我想在文件"file.txt"中写一个字符串:我的项目中的这个文件(对于Iphone)在Resources中; 我尝试在这个文件中写一个字符串,但它不起作用,我显示我的代码.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"file.txt"];
NSError *error;
[outputString writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
Run Code Online (Sandbox Code Playgroud)
我想用模拟器xcode写这个文件,而不是用设备
// directoryPath is a URL from another VC
@IBAction func saveButtonTapped(sender: AnyObject) {
let directoryPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL
let urlString : NSURL = directoryPath.URLByAppendingPathComponent("Image1.png")
print("Image path : \(urlString)")
if !NSFileManager.defaultManager().fileExistsAtPath(directoryPath.absoluteString) {
UIImageJPEGRepresentation(self.image, 1.0)!.writeToFile(urlString.absoluteString, atomically: true)
displayImageAdded.text = "Image Added Successfully"
} else {
displayImageAdded.text = "Image Not Added"
print("image \(image))")
}
}
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误,但图像没有保存在文档中.
我似乎无法让nsdata写入文件.我有什么想法可能做错了.提前致谢.
NSString* filename = @"myfile.txt";
NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:filename];
if ([fileManager fileExistsAtPath:applicationDocumentsDir])
NSLog(@"applicationDocumentsDir exists"); // verifies directory exist
NSData *data = [NSData dataWithContentsOfURL:URL];
if (data) {
NSString *content = [[NSString alloc] initWithBytes:[data bytes]
length:[data length] encoding: NSUTF8StringEncoding];
NSLog(@"%@", content); // verifies data was downloaded correctly
NSError* error;
[data writeToFile:storePath options:NSDataWritingAtomic error:&error];
if(error != nil)
NSLog(@"write error %@", error);
}
Run Code Online (Sandbox Code Playgroud)
我一直在收到错误
"The operation couldn’t be completed. No such file or directory"
Run Code Online (Sandbox Code Playgroud) 我在C#中有一个远程sql连接,需要执行查询并将其结果保存到用户的本地硬盘.这个东西可以返回相当大量的数据,因此需要考虑一种有效的存储方式.我之前已经读过,先将整个结果放入记忆中,然后写出来并不是一个好主意,所以如果有人可以提供帮助,那就太好了!
我目前正在将sql结果数据存储到DataTable中,虽然我认为它可以更好地做一些事情while(myReader.Read(){...}
下面是得到结果的代码:
DataTable t = new DataTable();
string myQuery = QueryLoader.ReadQueryFromFileWithBdateEdate(@"Resources\qrs\qryssysblo.q", newdate, newdate);
using (SqlDataAdapter a = new SqlDataAdapter(myQuery, sqlconn.myConnection))
{
a.Fill(t);
}
var result = string.Empty;
for(int i = 0; i < t.Rows.Count; i++)
{
for (int j = 0; j < t.Columns.Count; j++)
{
result += t.Rows[i][j] + ",";
}
result += "\r\n";
}
Run Code Online (Sandbox Code Playgroud)
所以现在我有了这个巨大的结果字符串.我有数据表.必须有一个更好的方法吗?
谢谢.
我有一个大约 100 万个地址的列表,以及一个查找它们的纬度和经度的函数。由于某些记录格式不正确(或出于任何原因),有时该函数无法返回某些地址的纬度和经度。这将导致 for 循环中断。因此,对于成功检索到纬度和经度的每个地址,我想将其写入输出 CSV 文件。或者,也许不是逐行写入,以小块大小写入也可以。为此,我df.to_csv
在“追加”模式 ( mode='a'
) 中使用,如下所示:
for i in range(len(df)):
place = df['ADDRESS'][i]
try:
lat, lon, res = gmaps_geoencoder(place)
except:
pass
df['Lat'][i] = lat
df['Lon'][i] = lon
df['Result'][i] = res
df.to_csv(output_csv_file,
index=False,
header=False,
mode='a', #append data to csv file
chunksize=chunksize) #size of data to append for each loop
Run Code Online (Sandbox Code Playgroud)
但问题在于,它正在为每个附加打印整个数据帧。因此,对于n
行,它将写入整个数据帧n^2
时间。如何解决这个问题?
我有一本字典,对于字典中的每个键,我都有一个 Pandas 数据框。从键到键的数据帧长度不等。
获取连接到每个键的数据帧需要一些时间,因此我希望将数据帧字典保存到文件中,这样我就可以将文件读入 Python,而不是每次打开 Python 时都运行我的脚本。
我的问题是:您如何建议将带有数据帧的字典写入文件 - 并再次读取它?我尝试了以下内容,其中 dictex 是字典:
w = csv.writer(open("output.csv", "w"))
for key, val in dictex.items():
w.writerow([key, val])
Run Code Online (Sandbox Code Playgroud)
但是我不确定我是否得到了我想要的东西,因为我很难再次将文件读入 Python。
感谢您的时间。
将.txt文件组件附加到URL路径不起作用:
var error:NSError?
let manager = NSFileManager.defaultManager()
let docURL = manager.URLForDirectory(.DocumentDirectory, inDomain:.UserDomainMask, appropriateForURL:nil, create:true, error:&error)
docURL.URLByAppendingPathComponent("/RicFile.txt") <-- doesn't work
Run Code Online (Sandbox Code Playgroud)
通过调试器:
file:///Users/Ric/Library/Developer/CoreSimulator/Devices/
<device id>/data/Containers/Data/Application/<app id>/Documents/
Run Code Online (Sandbox Code Playgroud)
使用docURL将字符串写入文件不起作用,因为缺少文件名.
原因(通过错误):
"操作无法完成.是一个目录"
所以问题:为什么以下不起作用?
docURL.URLByAppendingPathComponent("/RicFile.txt")
Run Code Online (Sandbox Code Playgroud) 嗨,我对快速编程很新,所以如果我犯了明显的错误,请耐心等待.我试图将用户通过文本字段输入的数据写入文本文件.我可以通过下面编写的代码成功完成此操作.但是,当我尝试保存更多数据时,它将使用正在保存的新数据替换文本文件中的现有数据.例如,如果我保存字符串'hello world'然后保存另一个字符串'bye'.我只会在文本文件中看到字符串'bye'.有没有办法可以修改我的代码,这样我就可以在纺织品的一行看到'hello world',在另一行看到'bye'.
@IBAction func btnclicked(_ sender: Any) {
self.savedata(value: answer.text!)
}
func savedata (value: String){
let fileName = "Test"
let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")
print("FilePath: \(fileURL.path)")
let writeString = NSString(string: answer.text!)
do {
// Write to the file
try writeString.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8.rawValue)
} catch let error as NSError {
print("Failed writing to URL: \(fileURL), Error: " + error.localizedDescription)
}
}
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助谢谢你
我必须使用打开的 csv 将嵌套的对象列表(StoreLocations)写入 Csv 文件。我的模型类是-
public class StoreLocation {
private String name;
private String city;
private int zip;
private String streetAndNumber;
private List<String> keywords;
private Double lat;
private Double lng;
private List<OpeningHours> openingHours;
}
public class OpeningHours {
private String dayOfWeek;
private String from1;
private String to1;
}
Run Code Online (Sandbox Code Playgroud)
我的写作方法——
public void getStoreLocationData(List<StoreLocation> storeLocations) throws IOException, CsvDataTypeMismatchException, CsvRequiredFieldEmptyException {
try (
Writer writer = Files.newBufferedWriter(Paths.get(storeLocationDataCsv))
) {
StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer)
.withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
.build();
beanToCsv.write(storeLocations);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码完美生成所有列,除了开放时间列表。这是当前的输出-
我宁愿有一个开放时间列,并将每个开放时间安排为一个新行。就像是
或在营业时间列内的 json …
writetofile ×10
ios ×3
pandas ×2
python ×2
swift ×2
atomic ×1
c# ×1
cocoa-touch ×1
csv ×1
dataframe ×1
dictionary ×1
directory ×1
image ×1
ios10 ×1
iphone ×1
java ×1
list ×1
nsdata ×1
nsurl ×1
objective-c ×1
opencsv ×1
read-write ×1
string ×1
swift3 ×1
xcode ×1